Dipublikasikan: 11 November 2024, Terakhir diperbarui: 20 Mei 2025
Penjelasan | Web | Ekstensi | Status Chrome | Intent |
---|---|---|---|---|
MDN | View | Intent to Ship |
Anda dapat menawarkan kemampuan kepada pengguna untuk menyaring artikel panjang, dokumen yang kompleks, atau bahkan percakapan chat yang aktif menjadi ringkasan yang ringkas dan mendalam.
Summarizer API dapat digunakan untuk membuat berbagai jenis ringkasan dalam berbagai panjang dan format, seperti kalimat, paragraf, daftar poin, dan lainnya. Kami yakin API ini berguna dalam skenario berikut:
- Meringkas poin-poin penting dari artikel atau percakapan chat.
- Menyarankan judul dan heading untuk artikel.
- Membuat ringkasan singkat dan informatif dari teks yang panjang.
- Membuat teaser untuk buku berdasarkan ulasan buku.
Mulai
Summarizer API tersedia mulai Chrome 138 stabil.
Jalankan deteksi fitur untuk melihat apakah browser mendukung Summarizer API.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Meninjau persyaratan hardware
Language Detector dan Translator API hanya berfungsi di desktop di Chrome.
Prompt API, Summarizer API, Writer API, dan Rewriter API berfungsi di Chrome jika kondisi berikut terpenuhi:
- Sistem operasi: Windows 10 atau 11; macOS 13+ (Ventura dan seterusnya); atau Linux. Chrome untuk Android, iOS, dan ChromeOS belum didukung oleh API kami yang didukung oleh Gemini Nano.
- Penyimpanan: Minimal 22 GB di volume yang berisi profil Chrome Anda.
- GPU: VRAM minimal 4 GB.
- Jaringan: Data tanpa batas atau koneksi tanpa kuota.
Persyaratan ini ada untuk Anda dalam proses pengembangan dan pengguna yang menggunakan fitur yang Anda buat.
Download model
Summarizer API menggunakan model yang dilatih untuk menghasilkan ringkasan berkualitas tinggi. API ini di-build ke dalam Chrome, dan Gemini Nano adalah model yang didownload saat pertama kali situs menggunakan API ini.
Untuk menentukan apakah model siap digunakan, panggil fungsi Summarizer.availability()
asinkron. Fungsi ini menampilkan promise dengan
nilai berikut.
"unavailable"
berarti penerapan tidak mendukung opsi yang diminta."downloadable"
berarti implementasi mendukung opsi yang diminta, tetapi pertama-tama, browser harus mendownload sesuatu, seperti model (dalam kasus Chrome, Gemini Nano) atau melakukan penyesuaian untuk model."downloading"
berarti implementasi mendukung opsi yang diminta, tetapi harus menyelesaikan download yang sedang berlangsung sebelum dapat dilanjutkan."available"
berarti implementasi mendukung opsi yang diminta dan penyingkat dapat dilanjutkan.
Untuk memicu download model dan membuat peringkas, panggil fungsi Summarizer.create()
asinkron. Jika respons untuk availability()
adalah
downloadable
atau downloading
, praktik terbaiknya adalah memproses progres
download. Dengan cara ini, Anda dapat memberi tahu pengguna dan menunjukkan bahwa download
mungkin memerlukan waktu untuk diselesaikan sebelum ringkasan dapat dilakukan.
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Fungsi API
Fungsi create()
memungkinkan Anda mengonfigurasi objek peringkas baru sesuai kebutuhan Anda. Fungsi ini memerlukan objek options
opsional dengan parameter berikut:
sharedContext
: Konteks bersama tambahan yang dapat membantu pembuat ringkasan.type
: Jenis ringkasan, dengan nilai yang diizinkankey-points
(default),tldr
,teaser
, danheadline
. Lihat tabel berikut untuk mengetahui detailnya.format
: Format ringkasan, dengan nilai yang diizinkanmarkdown
(default) danplain-text
.length
: Panjang ringkasan, dengan nilai yang diizinkanshort
,medium
(default), danlong
. Makna panjang ini bervariasi, bergantung padatype
yang diminta. Misalnya, dalam penerapan Chrome, ringkasan poin penting singkat terdiri dari tiga poin, dan ringkasan singkat adalah satu kalimat.
Setelah ditetapkan, parameter tidak dapat diubah. Buat objek peringkas baru jika Anda perlu melakukan perubahan pada parameter.
Tabel berikut menunjukkan berbagai jenis ringkasan dan panjangnya yang sesuai. Panjangnya mewakili nilai maksimum yang mungkin, karena terkadang, hasilnya bisa lebih pendek.
Jenis | Arti | Panjang | ||||||
---|---|---|---|---|---|---|---|---|
"tldr" |
Ringkasan harus singkat dan padat, memberikan ringkasan singkat tentang input, yang cocok untuk pembaca yang sibuk. |
|
||||||
"teaser" |
Ringkasan harus berfokus pada bagian input yang paling menarik atau membingungkan, yang dirancang untuk menarik pembaca agar membaca lebih lanjut. |
|
||||||
"key-points" |
Ringkasan harus mengekstrak poin-poin terpenting dari input, yang disajikan sebagai daftar berbutir. |
|
||||||
"headline" |
Ringkasan harus secara efektif berisi poin utama input dalam satu kalimat, dalam format judul artikel. |
|
Contoh berikut menunjukkan cara melakukan inisialisasi peringkas.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
if (availability === 'available') {
// The Summarizer API can be used immediately .
summarizer = await Summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await Summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
await summarizer.ready;
}
Menjalankan peringkas
Ada dua cara untuk menjalankan peringkas: streaming dan batch (non-streaming).
Ringkasan batch
Dengan ringkasan batch, model memproses input secara keseluruhan, lalu menghasilkan output.
Untuk mendapatkan ringkasan batch, panggil fungsi summarize()
. Argumen
pertama adalah teks yang ingin Anda rangkum. Argumen kedua yang bersifat opsional adalah objek dengan kolom context
. Kolom ini memungkinkan Anda menambahkan detail latar belakang
yang dapat meningkatkan ringkasan.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
Ringkasan streaming
Ringkasan streaming menawarkan hasil secara real time.
Output diperbarui secara terus-menerus saat input ditambahkan dan disesuaikan. Untuk mendapatkan ringkasan streaming, panggil summarizeStreaming()
, bukan summarize()
.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
Demo
Anda dapat mencoba Summarizer API di Summarizer API Playground.
Upaya standardisasi
Kami sedang berupaya menstandarkan Summarizer API, untuk memastikan kompatibilitas lintas browser.
Proposal API kami menerima dukungan komunitas dan telah dipindahkan ke W3C Web Incubator Community Group untuk didiskusikan lebih lanjut. Tim Chrome meminta masukan dari W3C Technical Architecture Group, dan meminta Mozilla dan WebKit untuk mengetahui posisi standar mereka.
Berpartisipasilah dalam upaya standar dengan bergabung ke Grup Komunitas Inkubator Web.
Berikan masukan
Kami ingin melihat apa yang Anda buat dengan Summarizer API. Bagikan situs dan aplikasi web Anda kepada kami di X, YouTube, dan LinkedIn.
Untuk memberikan masukan tentang penerapan Chrome, ajukan laporan bug atau permintaan fitur.